package com.menusifu.onlineorder.mongo.domain;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

@Document(collection = "orderbill")
public class OrderBill
{
    private static final long serialVersionUID = 1L;

    @Id
    private Long id;

    private String status;


    private String orderType;


    private String notes;

    private Long totalPrice;


    private Long lastUpdatedAppInstanceId;


    private Long serverId;


    private Long customerId;


    private Date createdOn;


    private Date lastUpdated;


    private Long createdBy;


    private Long lastUpdatedBy;


    private Long version;


    private Long numGuests;


    private Long tax;


    private Long gratuity;


    private Long discountId;


    private String discountName;


    private Long charge;


    private Long extraAmount;


    private Long discount;


    private Long chargeId;


    private String chargeName;


    private String orderNum;


    private Long driverId;


    private Long tableId;


    private Long addressId;


    private String deliveryAddress;


    private Long phoneId;


    private String phoneNumber;


    private String voidReason;


    private String discriminator;


    private Long parentOrderId;


    private Integer isParentOrder;


    private Integer srmTransactionCounter;


    private Long loyaltyCardId;


    private Integer loyaltyDiscount;


    private Long onlineOrderOrderId;


    private Integer onlineOrderSyncCount;


    private String onlineOrderInvoiceId;


    private Integer numberOfReceiptPrinted;


    private String additionalStatus;


    private Integer taxExempt;


    private String paymentDate;


    private Integer numberOfTicketNumberPrinted;


    private Integer sendToKitchenCount;


    private Integer numberOfPackerTicketPrinted;


    private Long checksum;


    private Long billedToSelfAmount;

    private Long createdOnAppInstanceId;


    private Long onlineOrderCreditMemoId;


    private Date reservationDate;


    private String customerName;

    private Date syncInfoLastUpdatedTime;


    private Long roundingAmount;


    private String cloudId;


    private Date syncDatahubInfoLastUpdatedTime;


    private MenuItem menuItem;


    private String createdTime;

    /** 实际客人数量，用于报表 */

    private Long actualNumGuests;

    /** 产品线 */

    private Long productLine;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setOrderType(String orderType) 
    {
        this.orderType = orderType;
    }

    public String getOrderType() 
    {
        return orderType;
    }
    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }
    public void setTotalPrice(Long totalPrice) 
    {
        this.totalPrice = totalPrice;
    }

    public Long getTotalPrice() 
    {
        return totalPrice;
    }
    public void setLastUpdatedAppInstanceId(Long lastUpdatedAppInstanceId) 
    {
        this.lastUpdatedAppInstanceId = lastUpdatedAppInstanceId;
    }

    public Long getLastUpdatedAppInstanceId() 
    {
        return lastUpdatedAppInstanceId;
    }
    public void setServerId(Long serverId) 
    {
        this.serverId = serverId;
    }

    public Long getServerId() 
    {
        return serverId;
    }
    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setCreatedOn(Date createdOn) 
    {
        this.createdOn = createdOn;
    }

    public Date getCreatedOn() 
    {
        return createdOn;
    }
    public void setLastUpdated(Date lastUpdated) 
    {
        this.lastUpdated = lastUpdated;
    }

    public Date getLastUpdated() 
    {
        return lastUpdated;
    }
    public void setCreatedBy(Long createdBy) 
    {
        this.createdBy = createdBy;
    }

    public Long getCreatedBy() 
    {
        return createdBy;
    }
    public void setLastUpdatedBy(Long lastUpdatedBy) 
    {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Long getLastUpdatedBy() 
    {
        return lastUpdatedBy;
    }
    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }
    public void setNumGuests(Long numGuests) 
    {
        this.numGuests = numGuests;
    }

    public Long getNumGuests() 
    {
        return numGuests;
    }
    public void setTax(Long tax) 
    {
        this.tax = tax;
    }

    public Long getTax() 
    {
        return tax;
    }
    public void setGratuity(Long gratuity) 
    {
        this.gratuity = gratuity;
    }

    public Long getGratuity() 
    {
        return gratuity;
    }
    public void setDiscountId(Long discountId) 
    {
        this.discountId = discountId;
    }

    public Long getDiscountId() 
    {
        return discountId;
    }
    public void setDiscountName(String discountName) 
    {
        this.discountName = discountName;
    }

    public String getDiscountName() 
    {
        return discountName;
    }
    public void setCharge(Long charge) 
    {
        this.charge = charge;
    }

    public Long getCharge() 
    {
        return charge;
    }
    public void setExtraAmount(Long extraAmount) 
    {
        this.extraAmount = extraAmount;
    }

    public Long getExtraAmount() 
    {
        return extraAmount;
    }
    public void setDiscount(Long discount) 
    {
        this.discount = discount;
    }

    public Long getDiscount() 
    {
        return discount;
    }
    public void setChargeId(Long chargeId) 
    {
        this.chargeId = chargeId;
    }

    public Long getChargeId() 
    {
        return chargeId;
    }
    public void setChargeName(String chargeName) 
    {
        this.chargeName = chargeName;
    }

    public String getChargeName() 
    {
        return chargeName;
    }
    public void setOrderNum(String orderNum) 
    {
        this.orderNum = orderNum;
    }

    public String getOrderNum() 
    {
        return orderNum;
    }
    public void setDriverId(Long driverId) 
    {
        this.driverId = driverId;
    }

    public Long getDriverId() 
    {
        return driverId;
    }
    public void setTableId(Long tableId) 
    {
        this.tableId = tableId;
    }

    public Long getTableId() 
    {
        return tableId;
    }
    public void setAddressId(Long addressId) 
    {
        this.addressId = addressId;
    }

    public Long getAddressId() 
    {
        return addressId;
    }
    public void setDeliveryAddress(String deliveryAddress) 
    {
        this.deliveryAddress = deliveryAddress;
    }

    public String getDeliveryAddress() 
    {
        return deliveryAddress;
    }
    public void setPhoneId(Long phoneId) 
    {
        this.phoneId = phoneId;
    }

    public Long getPhoneId() 
    {
        return phoneId;
    }
    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }
    public void setVoidReason(String voidReason) 
    {
        this.voidReason = voidReason;
    }

    public String getVoidReason() 
    {
        return voidReason;
    }
    public void setDiscriminator(String discriminator) 
    {
        this.discriminator = discriminator;
    }

    public String getDiscriminator() 
    {
        return discriminator;
    }
    public void setParentOrderId(Long parentOrderId) 
    {
        this.parentOrderId = parentOrderId;
    }

    public Long getParentOrderId() 
    {
        return parentOrderId;
    }
    public void setIsParentOrder(Integer isParentOrder) 
    {
        this.isParentOrder = isParentOrder;
    }

    public Integer getIsParentOrder() 
    {
        return isParentOrder;
    }
    public void setSrmTransactionCounter(Integer srmTransactionCounter) 
    {
        this.srmTransactionCounter = srmTransactionCounter;
    }

    public Integer getSrmTransactionCounter() 
    {
        return srmTransactionCounter;
    }
    public void setLoyaltyCardId(Long loyaltyCardId) 
    {
        this.loyaltyCardId = loyaltyCardId;
    }

    public Long getLoyaltyCardId() 
    {
        return loyaltyCardId;
    }
    public void setLoyaltyDiscount(Integer loyaltyDiscount) 
    {
        this.loyaltyDiscount = loyaltyDiscount;
    }

    public Integer getLoyaltyDiscount() 
    {
        return loyaltyDiscount;
    }
    public void setOnlineOrderOrderId(Long onlineOrderOrderId) 
    {
        this.onlineOrderOrderId = onlineOrderOrderId;
    }

    public Long getOnlineOrderOrderId() 
    {
        return onlineOrderOrderId;
    }
    public void setOnlineOrderSyncCount(Integer onlineOrderSyncCount) 
    {
        this.onlineOrderSyncCount = onlineOrderSyncCount;
    }

    public Integer getOnlineOrderSyncCount() 
    {
        return onlineOrderSyncCount;
    }
    public void setOnlineOrderInvoiceId(String onlineOrderInvoiceId) 
    {
        this.onlineOrderInvoiceId = onlineOrderInvoiceId;
    }

    public String getOnlineOrderInvoiceId() 
    {
        return onlineOrderInvoiceId;
    }
    public void setNumberOfReceiptPrinted(Integer numberOfReceiptPrinted) 
    {
        this.numberOfReceiptPrinted = numberOfReceiptPrinted;
    }

    public Integer getNumberOfReceiptPrinted() 
    {
        return numberOfReceiptPrinted;
    }
    public void setAdditionalStatus(String additionalStatus) 
    {
        this.additionalStatus = additionalStatus;
    }

    public String getAdditionalStatus() 
    {
        return additionalStatus;
    }
    public void setTaxExempt(Integer taxExempt) 
    {
        this.taxExempt = taxExempt;
    }

    public Integer getTaxExempt() 
    {
        return taxExempt;
    }
    public void setPaymentDate(String paymentDate) 
    {
        this.paymentDate = paymentDate;
    }

    public String getPaymentDate() 
    {
        return paymentDate;
    }
    public void setNumberOfTicketNumberPrinted(Integer numberOfTicketNumberPrinted) 
    {
        this.numberOfTicketNumberPrinted = numberOfTicketNumberPrinted;
    }

    public Integer getNumberOfTicketNumberPrinted() 
    {
        return numberOfTicketNumberPrinted;
    }
    public void setSendToKitchenCount(Integer sendToKitchenCount) 
    {
        this.sendToKitchenCount = sendToKitchenCount;
    }

    public Integer getSendToKitchenCount() 
    {
        return sendToKitchenCount;
    }
    public void setNumberOfPackerTicketPrinted(Integer numberOfPackerTicketPrinted) 
    {
        this.numberOfPackerTicketPrinted = numberOfPackerTicketPrinted;
    }

    public Integer getNumberOfPackerTicketPrinted() 
    {
        return numberOfPackerTicketPrinted;
    }
    public void setChecksum(Long checksum) 
    {
        this.checksum = checksum;
    }

    public Long getChecksum() 
    {
        return checksum;
    }
    public void setBilledToSelfAmount(Long billedToSelfAmount) 
    {
        this.billedToSelfAmount = billedToSelfAmount;
    }

    public Long getBilledToSelfAmount() 
    {
        return billedToSelfAmount;
    }
    public void setCreatedOnAppInstanceId(Long createdOnAppInstanceId) 
    {
        this.createdOnAppInstanceId = createdOnAppInstanceId;
    }

    public Long getCreatedOnAppInstanceId() 
    {
        return createdOnAppInstanceId;
    }
    public void setOnlineOrderCreditMemoId(Long onlineOrderCreditMemoId) 
    {
        this.onlineOrderCreditMemoId = onlineOrderCreditMemoId;
    }

    public Long getOnlineOrderCreditMemoId() 
    {
        return onlineOrderCreditMemoId;
    }
    public void setReservationDate(Date reservationDate) 
    {
        this.reservationDate = reservationDate;
    }

    public Date getReservationDate() 
    {
        return reservationDate;
    }
    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }
    public void setSyncInfoLastUpdatedTime(Date syncInfoLastUpdatedTime) 
    {
        this.syncInfoLastUpdatedTime = syncInfoLastUpdatedTime;
    }

    public Date getSyncInfoLastUpdatedTime() 
    {
        return syncInfoLastUpdatedTime;
    }
    public void setRoundingAmount(Long roundingAmount) 
    {
        this.roundingAmount = roundingAmount;
    }

    public Long getRoundingAmount() 
    {
        return roundingAmount;
    }
    public void setCloudId(String cloudId) 
    {
        this.cloudId = cloudId;
    }

    public String getCloudId() 
    {
        return cloudId;
    }
    public void setSyncDatahubInfoLastUpdatedTime(Date syncDatahubInfoLastUpdatedTime) 
    {
        this.syncDatahubInfoLastUpdatedTime = syncDatahubInfoLastUpdatedTime;
    }

    public Date getSyncDatahubInfoLastUpdatedTime() 
    {
        return syncDatahubInfoLastUpdatedTime;
    }
    public void setCreatedTime(String createdTime) 
    {
        this.createdTime = createdTime;
    }

    public String getCreatedTime() 
    {
        return createdTime;
    }
    public void setActualNumGuests(Long actualNumGuests) 
    {
        this.actualNumGuests = actualNumGuests;
    }

    public Long getActualNumGuests() 
    {
        return actualNumGuests;
    }
    public void setProductLine(Long productLine) 
    {
        this.productLine = productLine;
    }

    public Long getProductLine() 
    {
        return productLine;
    }

    public MenuItem getMenuItem() {
        return menuItem;
    }

    public void setMenuItem(MenuItem menuItem) {
        this.menuItem = menuItem;
    }

    @Override
    public String toString() {
        return "OrderBill{" +
                "id=" + id +
                ", status='" + status + '\'' +
                ", orderType='" + orderType + '\'' +
                ", notes='" + notes + '\'' +
                ", totalPrice=" + totalPrice +
                ", lastUpdatedAppInstanceId=" + lastUpdatedAppInstanceId +
                ", serverId=" + serverId +
                ", customerId=" + customerId +
                ", createdOn=" + createdOn +
                ", lastUpdated=" + lastUpdated +
                ", createdBy=" + createdBy +
                ", lastUpdatedBy=" + lastUpdatedBy +
                ", version=" + version +
                ", numGuests=" + numGuests +
                ", tax=" + tax +
                ", gratuity=" + gratuity +
                ", discountId=" + discountId +
                ", discountName='" + discountName + '\'' +
                ", charge=" + charge +
                ", extraAmount=" + extraAmount +
                ", discount=" + discount +
                ", chargeId=" + chargeId +
                ", chargeName='" + chargeName + '\'' +
                ", orderNum='" + orderNum + '\'' +
                ", driverId=" + driverId +
                ", tableId=" + tableId +
                ", addressId=" + addressId +
                ", deliveryAddress='" + deliveryAddress + '\'' +
                ", phoneId=" + phoneId +
                ", phoneNumber='" + phoneNumber + '\'' +
                ", voidReason='" + voidReason + '\'' +
                ", discriminator='" + discriminator + '\'' +
                ", parentOrderId=" + parentOrderId +
                ", isParentOrder=" + isParentOrder +
                ", srmTransactionCounter=" + srmTransactionCounter +
                ", loyaltyCardId=" + loyaltyCardId +
                ", loyaltyDiscount=" + loyaltyDiscount +
                ", onlineOrderOrderId=" + onlineOrderOrderId +
                ", onlineOrderSyncCount=" + onlineOrderSyncCount +
                ", onlineOrderInvoiceId='" + onlineOrderInvoiceId + '\'' +
                ", numberOfReceiptPrinted=" + numberOfReceiptPrinted +
                ", additionalStatus='" + additionalStatus + '\'' +
                ", taxExempt=" + taxExempt +
                ", paymentDate='" + paymentDate + '\'' +
                ", numberOfTicketNumberPrinted=" + numberOfTicketNumberPrinted +
                ", sendToKitchenCount=" + sendToKitchenCount +
                ", numberOfPackerTicketPrinted=" + numberOfPackerTicketPrinted +
                ", checksum=" + checksum +
                ", billedToSelfAmount=" + billedToSelfAmount +
                ", createdOnAppInstanceId=" + createdOnAppInstanceId +
                ", onlineOrderCreditMemoId=" + onlineOrderCreditMemoId +
                ", reservationDate=" + reservationDate +
                ", customerName='" + customerName + '\'' +
                ", syncInfoLastUpdatedTime=" + syncInfoLastUpdatedTime +
                ", roundingAmount=" + roundingAmount +
                ", cloudId='" + cloudId + '\'' +
                ", syncDatahubInfoLastUpdatedTime=" + syncDatahubInfoLastUpdatedTime +
                ", createdTime='" + createdTime + '\'' +
                ", actualNumGuests=" + actualNumGuests +
                ", productLine=" + productLine +
                '}';
    }
}
